/**
 * 操作模板内的page.json类
 */
import path from 'path';
import Fs from 'fs-extra'
import Config from "../Config";

class PageJson {
    
    /**
     * 获取指定page.json数据
     * @param dir string 项目路径
     */
    get(dir:string, field:string = "") 
    {
        const pages_json_path = path.join(Config.data_dir,dir,'src','pages.json')
        const data = Fs.readJSONSync(pages_json_path);
        return  field ? data[field] : data
    }

    /**
     * 返回项目页面配置文件的绝对路径
     * @param dir string 项目路径
     */
    getAbsolutePageJsonPath(dir: string) {
        return path.join(Config.data_dir,dir,'src','pages.json');
    }

    /**
     * 提交设置配置文件
     * @param dir 
     * @param field 
     * @param data 
     */
    submit(dir:string,field:string,data:any) {
        const sourceData = this.get(dir)
        sourceData[field] = data
        return Fs.writeJSONSync(this.getAbsolutePageJsonPath(dir),sourceData); 
    }
}

export default new PageJson